<!DOCTYPE html>  
<meta charset="utf-8" />  
<title>symbol</title>  
<body>
    <h2>symbol</h2>  
    1.Symbol函数前不能使用new命令 
    2.typeof 返回数据类型是Symbol
    3.Symbol 值也可以转为布尔值，但是不能转为数值
    4.Symbol 值不能与其他类型的值进行运算,但是，Symbol 值可以显式转为字符串
    5.Symbol 值作为对象属性名时，不能用点运算符。Symbol 值必须放在方括号之中
    6.对于循环和其他的方法来说， Symbols 是不可见的例如：for in   或者object.keys
    7.原型添加方法避免重名
</body>
<script type="text/javascript">
    var mySymbol1 = Symbol('dosomethings')
    var mySymbol2 = Symbol('dosomethings')
    console.log(mySymbol1)
    console.log(mySymbol2)
    console.log(mySymbol2==mySymbol1)//false


    var mySymbol3 = Symbol.for('doAnthorthing')
    var mySymbol4 = Symbol.for('doAnthorthing')
    console.log(mySymbol3)
    console.log(mySymbol4)
    console.log(mySymbol3==mySymbol4)//true


    var obj={};
    var prop3 = Symbol('prop3');
    var prop4 = Symbol('prop4');
    obj['prop1'] = 1;
    obj['prop2'] = 2;
    obj[prop3] = 3;
    obj[prop4] = 4;
    console.log(Object.keys(obj))//["prop1", "prop2"]
    console.log(Object.getOwnPropertyNames(obj));//["prop1", "prop2"]
    for(var key in obj){
        console.log('key',key)//prop1、prop2
    }

</script>
</html>